package com.cloudcc.boot.enums;

import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

@Getter
public enum SuccessfulOrFailedEnum {

    SUCCESS(1, "操作成功"),
    FAILURE(0, "操作失败");

    // Getter 方法
    private final int code;       // 状态码（1=成功，0=失败）
    private final String message; // 状态描述

    // 私有构造方法
    SuccessfulOrFailedEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @JsonValue
    public int getCode() {
        return code;
    }

    // 通过状态码获取枚举实例（反向查找）
    public static SuccessfulOrFailedEnum fromCode(int code) {
        for (SuccessfulOrFailedEnum result : values()) {
            if (result.code == code) {
                return result;
            }
        }
        throw new IllegalArgumentException("无效的状态码: " + code);
    }

    // 判断是否成功（布尔方法）
    public boolean isSuccess() {
        return this == SUCCESS;
    }

}

